package com.sh3h.generator.web.dtos;

import com.sh3h.generator.web.domain.GenTableField;
import lombok.Data;

import java.io.Serializable;

/**
 * 代码生成表字段
 * @TableName gen_table_field
 */
@Data
public class GenTableFieldDto implements Serializable {
    /**
     * id
     */
    private Long id;

    /**
     * 表ID
     */
    private String tableId;

    /**
     * 字段名称
     */
    private String fieldName;

    /**
     * 字段类型
     */
    private String fieldType;

    /**
     * 字段说明
     */
    private String fieldComment;

    /**
     * 属性名
     */
    private String attrName;

    /**
     * 属性类型
     */
    private String attrType;

    /**
     * 属性包名
     */
    private String packageName;

    /**
     * 排序
     */
    private Integer sort;

    /**
     * 自动填充  DEFAULT、INSERT、UPDATE、INSERT_UPDATE
     */
    private String autoFill;

    /**
     * 主键 0：否  1：是
     */
    private Integer primaryPk;

    /**
     * 基类字段 0：否  1：是
     */
    private Integer baseField;

    /**
     * 表单项 0：否  1：是
     */
    private Integer formItem;

    /**
     * 表单必填 0：否  1：是
     */
    private Integer formRequired;

    /**
     * 表单类型
     */
    private String formType;

    /**
     * 表单字典类型
     */
    private String formDict;

    /**
     * 表单效验
     */
    private String formValidator;

    /**
     * 列表项 0：否  1：是
     */
    private Integer gridItem;

    /**
     * 列表排序 0：否  1：是
     */
    private Integer gridSort;

    /**
     * 查询项 0：否  1：是
     */
    private Integer queryItem;

    /**
     * 查询方式
     */
    private String queryType;

    /**
     * 查询表单类型
     */
    private String queryFormType;

    private static final long serialVersionUID = 1L;
    public static GenTableField ToModal(GenTableFieldDto dto){
        GenTableField tableField=new GenTableField();
        tableField.setId(dto.getId());
        tableField.setFieldComment(dto.getFieldComment());
        tableField.setTableId(dto.getTableId());
        tableField.setAttrType(dto.getAttrType());
        tableField.setFieldType(dto.getFieldType());
        tableField.setFieldName(dto.getFieldName());
        tableField.setAttrName(dto.getAttrName());
        tableField.setPackageName(dto.getPackageName());
        tableField.setPrimaryPk(dto.getPrimaryPk());
        tableField.setSort(dto.getSort());
        tableField.setFormItem(dto.getFormItem());
        tableField.setFormRequired(dto.getFormRequired());
        tableField.setFormType(dto.getFormType());
        tableField.setQueryItem(dto.getQueryItem());
        tableField.setQueryType(dto.getQueryType());
        return tableField;
    }
}